package jumpingnotes.codec;

import java.util.HashMap;
import java.util.Map;

public class CodecParams {
	private String inputCodec = null;
	private String outputCodec = null;
	private boolean copyInputCodec = false; // whether to copy the content from input
	private int bitRate = 0;
	private int sampleRate = 0;
	private int volume = 256;
	private int startTime = 0;
	private int duration = -1;
	private int numChannels = 0;
	private int sizeLimit = -1;
	private Map<String,Object> advancedParams = new HashMap<String,Object>();
	
	public CodecParams() {
	
	}
	
	public CodecParams(int bitRate, int sampleRate, int volume, int startTime, int duration) {
		this.bitRate = bitRate;
		this.sampleRate = sampleRate;
		this.volume = volume;
		this.startTime = startTime;
		this.duration = duration;
		this.numChannels = 0;
		this.sizeLimit = -1;
	}
	
	public String getInputCodec() {
		return inputCodec;
	}
	
	public void setInputCodec(String inputCodec) {
		this.inputCodec = inputCodec;
	}
	
	public String getOutputCodec() {
		return outputCodec;
	}
	
	public void setOutputCodec(String outputCodec) {
		this.outputCodec = outputCodec;
	}
	
	public boolean isCopyInputCodec() {
		return copyInputCodec;
	}

	public void setCopyInputCodec(boolean copyInputCodec) {
		this.copyInputCodec = copyInputCodec;
	}

	public int getBitRate() {
		return bitRate;
	}
	
	public void setBitRate(int bitRate) {
		this.bitRate = bitRate;
	}
	
	public int getSampleRate() {
		return sampleRate;
	}
	
	public void setSampleRate(int sampleRate) {
		this.sampleRate = sampleRate;
	}
	
	public int getVolume() {
		return volume;
	}
	
	public void setVolume(int volume) {
		this.volume = volume;
	}
	
	public int getStartTime() {
		return startTime;
	}
	
	public void setStartTime(int startTime) {
		this.startTime = startTime;
	}
	
	public int getDuration() {
		return duration;
	}
	
	public void setDuration(int duration) {
		this.duration = duration;
	}
	
	public int getNumChannels() {
		return numChannels;
	}
	
	public void setNumChannels(int numChannels) {
		this.numChannels = numChannels;
	}
	
	public int getSizeLimit() {
		return sizeLimit;
	}

	public void setSizeLimit(int sizeLimit) {
		this.sizeLimit = sizeLimit;
	}

	public Map<String, Object> getAdvancedParams() {
		return advancedParams;
	}
}
